package com.ws.demo1.demos.ConcurrencyBasics;

/**
 * 统计某个接口的访问次数
 * 第一种，多个线程共享同一个变量。
 */
public class AccountCount extends Thread {

    /**
     * 这种多个线程访问同一个对象时，调用这个对象的方法得到不正确的结果，这种问题称为线程安全问题。
     */

    //访问次数变量
    //int accessCount;
    //统计调用的接口
    public void access() {
        int accessCount =0;
        accessCount++;
        System.out.println(Thread.currentThread().getName() + accessCount);
    }

    @Override
    public void run() {
        access();
    }

    //返回查询的次数
//    public int getAccessCount() {
//        return accessCount;
//    }

    public static void main(String[] args) {
        AccountCount accountCount = new AccountCount();
        new Thread(accountCount,"A").start();
        new Thread(accountCount,"B").start();
        new Thread(accountCount,"C").start();
        new Thread(accountCount,"D").start();
        new Thread(accountCount,"E").start();
        new Thread(accountCount,"F").start();
    }
    /**
     * 结果
     * B3
     * D4
     * A3
     * C3
     * F5
     * E6
     */

}
